package com.syh.jn.scm.domain.supplier.event;

import com.syh.core.ddd.domain.DomainEvent;
import com.syh.jn.scm.domain.supplier.entity.finance.CostBill;

public class CostBillEvent extends DomainEvent<CostBill> {

  public static final String COST_BILL_CREATE = "costBillCreate";
  public static final String COST_BILL_DESTROY = "costBillDestroy";
  public static final String COST_BILL_STATE_CONFIRM = "costBillStateConfirm";
  public static final String COST_BILL_STATE_UN_CONFIRM = "costBillStateUnConfirm";

  /**
   * 费用单创建事件
   *
   * @param values
   * @return
   */
  public static CostBillEvent buildCreate(Object[] values) {
    CostBillEvent costBillEvent = new CostBillEvent();
    costBillEvent.eventName = COST_BILL_CREATE;
    costBillEvent.values = values;
    return costBillEvent;
  }

  /**
   * 费用单销毁事件
   *
   * @param values
   * @return
   */
  public static CostBillEvent buildDestroy(Object[] values) {
    CostBillEvent costBillEvent = new CostBillEvent();
    costBillEvent.eventName = COST_BILL_DESTROY;
    costBillEvent.values = values;
    return costBillEvent;
  }

  /**
   * 费用单确认
   *
   * @param values
   * @return
   */
  public static CostBillEvent buildStateConfirm(Object[] values) {
    CostBillEvent costBillEvent = new CostBillEvent();
    costBillEvent.eventName = COST_BILL_STATE_CONFIRM;
    costBillEvent.values = values;
    return costBillEvent;
  }

  /**
   * 费用单单方取消确认
   *
   * @param values
   * @return
   */
  public static CostBillEvent buildStateUnConfirm(Object[] values) {
    CostBillEvent costBillEvent = new CostBillEvent();
    costBillEvent.eventName = COST_BILL_STATE_UN_CONFIRM;
    costBillEvent.values = values;
    return costBillEvent;
  }

}
